// 1. 引入http模块
const http = require('http')
const qs = require('querystring')
const host = '127.0.0.1'
const port = 8890
// 引入util.js中的getClientIp函数
const { getClientIp } = require('./utils/util.js')
// 2. 创建服务
const server = http.createServer((req, res) => {
  // 服务端设置允许跨域请求
  res.setHeader('Access-Control-Allow-Origin', '*')
  // 获得客户端的请求ip地址
  let ip = getClientIp(req)
  // 客户端的请求方法
  let method = req.method
  console.log(`${method} ${ip}`)
  // 设置字符集
  req.setEncoding('utf-8')
  // 声明变量保存客户端传递的参数
  let params = ''
  // 监听传递参数过程，把所有的参数拼接成字符串
  req.on('data', function (chunk) {
    params += chunk
  })
  // 监听请求结束事件，执行回调函数
  req.on('end', function () {
    params = qs.parse(params) // a=1&b=2&c=3 --> { a: '1', b: '2', c: '3', d: '呵呵' }
    // console.log(params) // { a: '1', b: '2', c: '3', d: '呵呵' }
    // 返回响应数据给客户端
    res.end(JSON.stringify(params))
  })
})
// 3. 监听服务
server.listen(port, host, () => {
  console.log(`服务器的访问地址是:http://${host}:${port}`)
})
